package org.lonetree.tc.webapp.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.lonetree.tc.core.User;
import org.lonetree.tc.core.User.EmailAddress;
import org.lonetree.tc.core.User.Username;
import org.lonetree.tc.core.dao.DAOFactory;
import org.lonetree.tc.core.dao.UserDAO;
import org.lonetree.tc.webapp.forms.UserForm;

public class PrepForUserUpdate extends AdminAction {

	@Override
	protected ActionForward executeAdmin(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		try{
			UserForm uf = (UserForm)form;
			String username = request.getParameter("username");
			DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.FactoryImplementation.DB_DAO_FACTORY);
			UserDAO udao = factory.getUserDAO();
			User user = udao.getUser(new Username(username));
			
			EmailAddress em = user.getEmailAddress();
			if(em != null)
				uf.setEmail(em.getEmailAddressString());
			
			uf.setFirstName(user.getFirstName());
			uf.setLastName(user.getLastName());
			uf.setUsername(username);
			uf.setLocation(user.getLocation());
			request.setAttribute("UserForm", user);
			return mapping.findForward("success");
		}
		catch(Exception e){
			return mapping.findForward("failure");
		}
		
	}

}
